package com.example.serviceorder.controller;

import com.example.serviceorder.feign.WeatherFeignClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;

/**
 * 天气信息控制器
 * 提供对接第三方天气 API 的接口
 */
@RestController
@RequestMapping("/weather")
public class WeatherController {

    @Autowired
    private WeatherFeignClient weatherFeignClient;


    /**
     * 查询某个地区的未来 7 天天气信息
     *
     * @return 第三方天气服务返回的原始 JSON 字符串
     */
    @GetMapping("/forecast")
    public String getWeatherForecast() {
        Map<String, String> querys = new HashMap<>();
        querys.put("areaCode", "330100");// 330100表示杭州
//        querys.put("areaCn", "杭州");
        querys.put("ip", "ip");
        querys.put("lng", "lng");
        querys.put("lat", "lat");
        querys.put("needalarm", "needalarm");
        querys.put("need1hour", "need1hour");
        querys.put("need3hour", "need3hour");
        querys.put("needIndex", "needIndex");
        querys.put("needObserve", "needObserve");

        try {
            // 因为已通过请求拦截器添加 Authorization，所以这里不需要传入 Header
            String response = weatherFeignClient.getWeatherReqInter(querys);
            System.out.println("Feign 调用结果: " + response);
            return response;
        } catch (Exception e) {
            e.printStackTrace();
            return "调用天气接口失败：" + e.getMessage();
        }
    }
//    springmvc中是要求，路径是唯一的。但是openfeign没有要求路径是唯一的。下面这个注释打开会启动不了项目。
//    @GetMapping("/forecast")
//    public String getWeatherForecast2() {
//        return "getWeatherForecast2";
//    }
}
